package com.koron.css2.clientCenter.mapper;

import com.koron.css2.chargeCenter.bean.BillDetailBean;
import com.koron.css2.chargeCenter.queryBean.BillDetailQueryBean;
import com.koron.css2.clientCenter.bean.ChargeLackDetailBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 账单明细
 * @author 甄玉晴
 *
 */
public interface BillDetailMapper {
	/**
	 * 查询用户欠费明细
	 * @param bean
	 * @return
	 */
	public List<ChargeLackDetailBean> chargeLackDetailList(String userNo);
	

	List<BillDetailBean> selectByBillId(String billId);


	BillDetailBean selectBillDetail(@Param("id") String id);
	BillDetailBean selectBillDetailReview(@Param("id") String id);
	/**
	 * 查询账单明细
	 * @param query
	 * @return
	 */
	public List<BillDetailBean> selectList(BillDetailQueryBean query);
	
	/**
	 * 根据账单ID查询账单明细
	 * @param id
	 * @return
	 */
	public BillDetailBean selectById(String id);
	
	/**
	 * 根据流水号查询账单明细
	 * @param serialNo
	 * @return
	 */
	public List<BillDetailBean> selectBySerialNo(@Param("serialNo") String serialNo,@Param("userNo")  String userNo);

	/**
	 * 根据流水号查询账单明细
	 * @param serialNo
	 * @param accountPeriod
	 * @return
	 */
	public List<BillDetailBean> selectBySerialNoPeriod(@Param("serialNo") String serialNo,@Param("userNo")  String userNo, @Param("accountPeriod") String accountPeriod);
	
	/**
	 * 账单明细添加
	 * @param bean
	 * @return
	 */
	public int addBillDetail(BillDetailBean bean);
	/**
	 * 账单明细添加List
	 * @param bean
	 * @return
	 */
	public int addBillDetailList(@Param("list") List<BillDetailBean> list);

	/**
	 * 账单明细修改
	 * @param bean
	 * @return
	 */
	public int updateBillDetail(BillDetailBean bean);
	
	/**
	 * 修改单据状态
	 * @param id
	 * @param status
	 * @return
	 */
	int updateBillStatus(@Param("id") String id, @Param("status") int status);
	/**
	 * 修改单据红冲状态
	 * @param id
	 * @param status
	 * @return
	 */
	int updateBillRedRushStatus(@Param("id") String id, @Param("status") int status,@Param("comments") String comments,@Param("billId") String billId);
	int updateBillHisRedRushStatus(@Param("id") String id, @Param("status") int status,@Param("comments") String comments,@Param("billId") String billId);
	
	Integer selectYearWater(@Param("ids") List<String> ids);
	Integer lockBillDetail(@Param("lockFlag") String lockFlag,@Param("ids") List<String> ids);
	/**
	 * 根据抄表id及用水价格获取一条账单数据

	@Select("select * from bill_detail where meter_reading_id=#{meterReaingId} and water_price_id=#{waterPriceId} limit 1")
	BillDetailBean getDetailByMeterIdAndPrice(@Param("meterReaingId")String meterReaingId,@Param("waterPriceId")String waterPriceId);
	 */
	}
